# 通过递归，找出一个文件夹中的所有文件
import os


def test_os():
    # 展示出此文件夹下的所有文件和文件夹
    print(os.listdir("/Users/PyProject/pylearn/06_python_高级"))
    # 判断一个路径是否是文件夹
    print(os.path.isdir("/Users/PyProject/pylearn/06_python_高级"))
    # 判断文件夹是否存在
    print(os.path.exists("/Users/PyProject/pylearn/06_python_高级"))


def get_files_recursion_from_dir(path):
    """
    从指定的文件夹中使用递归的方法，回去全部的文件列表
    :param path: 被遍历的文件夹
    :return: list，包含全部的文件，如果目录不存在或者无文件返回一个空的list
    """
    file_list = []
    # 如果文件路径存在
    if os.path.exists(path):
        # 遍历里面的文件
        for f in os.listdir(path):
            # 构造路径
            new_path = path + "/" + f
            if os.path.isdir(new_path):
                # 如果是文件夹，递归
                file_list += get_files_recursion_from_dir(new_path)
            else:
                # 不是文件夹，在加到文件列表里
                file_list.append(new_path)

    # 如果文件不存在
    else:
        print(f"指定的目录{path}，不存在")
        return []

    return file_list


if __name__ == '__main__':
    file_list = get_files_recursion_from_dir("/Users/PyProject/pylearn/06_python_高级")
    print(file_list)
